ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Чек-лист самопроверки
- Что такое C# и для каких задач он предназначен?
- Какие версии C# существуют и какие ключевые нововведения появились в последних версиях?
- Как C# связан с платформой .NET?
- Что такое Common Language Runtime (CLR) и какую роль она играет?
- Как происходит компиляция и выполнение C#-программы?
- Что такое сборка мусора и как она работает в .NET?
- В чём разница между значимыми и ссылочными типами?
- Где хранятся значимые и ссылочные типы — в стеке или в куче?
- Что такое упаковка и распаковка (
boxing/unboxing)?
- Какие есть примитивные типы данных в C#?
- Что такое
var и как работает вывод типа?
- Какие есть способы объявления и инициализации переменных?
- Что такое
ref, out, in — и когда их использовать?
- Что такое
params и как его применять?
- Как работают условные операторы (
if, switch)?
- Что такое тернарный оператор и как он записывается?
- Какие циклы поддерживаются в C# (
for, foreach, while, do-while)?
- В чём разница между
for и foreach?
- Что делают операторы
break, continue, goto?
- Что такое пространства имён и зачем они нужны?
- Как работает директива
using?
- Что такое
using static и как она упрощает код?
- Что такое класс, поле, свойство, метод, конструктор, деструктор?
- Что означает ключевое слово
this внутри класса?
- Что такое статические классы и методы?
- Что такое частичные типы (
partial) и зачем они нужны?
- Что такое
nameof и как он повышает надёжность кода?
- Какие основные принципы ООП реализованы в C#?
- Что такое наследование и как оно работает?
- Почему C# не поддерживает множественное наследование классов?
- Что такое интерфейсы и чем они отличаются от абстрактных классов?
- Что такое полиморфизм и как он реализуется?
- Что такое перегрузка методов и операторов?
- Что такое модификаторы доступа (
public, private, protected, internal)?
- Что такое перечисления (
enum) и флаги ([Flags])?
- Что такое обобщения (
generics) и зачем они нужны?
- Что такое ковариантность, контравариантность и инвариантность?
- Что такое делегаты и как они используются?
- В чём разница между
Action, Func и пользовательскими делегатами?
- Что такое события (
event) и как они отличаются от делегатов?
- Что такое лямбда-выражения и замыкания?
- Как работают исключения и как их обрабатывать?
- Что такое
try/catch/finally и try-with-resources (аналог в C#)?
- Что такое итераторы и ключевое слово
yield?
- Что такое типы, допускающие значение
null (Nullable<T>, ?)?
- Что такое расширяющие методы и как их создавать?
- Что такое анонимные типы и кортежи (
(int, string))?
- Что такое атрибуты и как они используются?
- Как работает сериализация и десериализация в C#?
- Какие современные возможности появились в C# 9–12 (
record, init, required, pattern matching, ranges, file-scoped namespaces)?